﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class Download : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (Session["TaiKhoan"] == null)
            {
                Response.Write("<center>");
                Response.Write("<h3>Bạn cần đăng nhập để có thể tại được tập tin này</h3>");
                Response.Write("<a href='Login.aspx'>Vào đây để đăng nhập</a>");
                Response.Write("</center>");
                return;
            }

            TaiKhoan tk = (TaiKhoan)Session["TaiKhoan"];

            int iMaKH = -1;
            try
            {
                iMaKH = int.Parse(Request.QueryString["cus"]);
            }
            catch
            {
            }

            if (tk.MaKhachHang != iMaKH)
            {
                Response.Write("<center>");
                Response.Write("<h3>Bạn không có quyền tải tập tin này</h3>");
                Response.Write("<a href='Default.aspx'>Đến trang chủ</a>");
                Response.Write("</center>");
                return;
            }

            int iMaPDH = -1;
            int iMaTL = -1;
            try
            {
                iMaPDH = int.Parse(Request.QueryString["ord"]);
                iMaTL = int.Parse(Request.QueryString["id"]);
            }
            catch
            {
            }

            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();

            var query = from ct in db.CTPhieuDatHangs
                        where ct.MaTaiLieu == iMaTL && ct.MaPDH == iMaPDH
                        select ct;

            CTPhieuDatHang ctp = query.Single();

            if (ctp == null)
            {
                Response.Write("<center>");
                Response.Write("<h3>Tập tin này không tồn tại</h3>");
                Response.Write("<a href='Default.aspx'>Đến trang chủ</a>");
                Response.Write("</center>");
                return;
            }

            //string strRequest = Request.QueryString("file");
            //string strRequest = "Products/Musics/cqddpt.mp3";

            string strRequest = ctp.TaiLieu.ProductPath;

            //-- if something was passed to the file querystring
            //get absolute path of the file
            if (!string.IsNullOrEmpty(strRequest))
            {
                string path = Server.MapPath(strRequest);

                //get file object as FileInfo
                FileInfo file = new FileInfo(path);

                //-- if the file exists on the server
                //set appropriate headers
                if (file.Exists)
                {
                    Response.Clear();
                    Response.AddHeader("Content-Type", "application-download");
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                    Response.AddHeader("Content-Length", file.Length.ToString());
                    Response.ContentType = "application/octet-stream";
                    Response.WriteFile(file.FullName);
                    Response.End();
                    //if file does not exist
                }
                else
                {
                    //Response.Write("This file does not exist.");
                    Response.Write("<center>");
                    Response.Write("<h3>Tập tin này không tồn tại</h3>");
                    Response.Write("<a href='Default.aspx'>Đến trang chủ</a>");
                    Response.Write("</center>");
                }
                //nothing in the URL as HTTP GET
            }
            else
            {
                //Response.Write("Please provide a file to download.");
                Response.Write("<center>");
                Response.Write("<h3>Tập tin này không tồn tại</h3>");
                Response.Write("<a href='Default.aspx'>Đến trang chủ</a>");
                Response.Write("</center>");
            }
        }
        catch
        {
            //Response.Write("Please provide a file to download.");
            Response.Write("<center>");
            Response.Write("<h3>Tập tin này không tồn tại hoặc bạn không được phép tải.</h3>");
            Response.Write("<a href='Default.aspx'>Đến trang chủ</a>");
            Response.Write("</center>");
        }
    }
}